{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1) 替换名字后的文本: 张如玉个人网页的网址为http://abc138qaz，喜欢语文、数学和科学。\n",
      "(2) 科目名称: ['数学', '科学']\n",
      "(3) 替换数字后的文本: 张三个人网页的网址为http://abc***qaz，喜欢语文、数学和科学。\n",
      "(4) 以h开头以c结尾的部分: ['http://abc']\n"
     ]
    }
   ],
   "source": [
    "#任务1\n",
    "import re\n",
    "text = \"张三个人网页的网址为http://abc138qaz，喜欢语文、数学和科学。\"\n",
    "name_replaced = re.sub(r'张三', '张如玉', text)\n",
    "print(\"(1) 替换名字后的文本:\", name_replaced)\n",
    "subjects = re.findall(r'数学|科学', text)\n",
    "print(\"(2) 科目名称:\", subjects)\n",
    "digit_replaced = re.sub(r'\\d', '*', text)\n",
    "print(\"(3) 替换数字后的文本:\", digit_replaced)\n",
    "h_to_c = re.findall(r'h.*?c', text)\n",
    "print(\"(4) 以h开头以c结尾的部分:\", h_to_c)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "关键词: ['海洋', '108kW', '20', '盐差', '潮汐能']\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#任务二\n",
    "import re\n",
    "import jieba.analyse\n",
    "import jieba.posseg\n",
    "import jieba\n",
    "from wordcloud import WordCloud\n",
    "import matplotlib.pyplot as plt\n",
    "import imageio\n",
    "f = open('data/sea.txt', encoding='utf-8')\n",
    "t = f.read()\n",
    "f.close()\n",
    "keywords = jieba.analyse.extract_tags(t, topK=5)\n",
    "print(\"关键词:\", keywords)\n",
    "words = jieba.lcut(t)\n",
    "txt = ' '.join(words)\n",
    "image = imageio.imread('data/horse.png')\n",
    "w = WordCloud(font_path='data/FZFSJW.TTF', background_color='white', mask=image)\n",
    "w.generate(txt)\n",
    "w.to_file('data/test.png')\n",
    "plt.imshow(w, interpolation='bilinear')\n",
    "plt.axis(\"off\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "#任务三\n",
    "import numpy\n",
    "import gensim\n",
    "import numpy as np\n",
    "from jieba import analyse\n",
    "from gensim.models import Word2Vec\n",
    "from gensim.models.word2vec import LineSentence"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "与文化相似度最高的10个词：\n",
      "[('地理', 0.700573742389679), ('娱乐', 0.6653313636779785), ('民间', 0.6565182209014893), ('现代', 0.6552385687828064), ('交流', 0.640957772731781), ('艺术', 0.6408422589302063), ('地域', 0.6402378678321838), ('社会学', 0.6393280029296875), ('哲学', 0.6354823112487793), ('天地', 0.6277003884315491)]\n"
     ]
    }
   ],
   "source": [
    "def train_word2vec():\n",
    "    cor_data = open('data/TrainData.txt','r',encoding='utf-8')\n",
    "    model = Word2Vec(LineSentence(cor_data),sg = 0,vector_size = 200,window=5,min_count=5,workers=9)\n",
    "    model.save('data/model_word2vec')\n",
    "    print('与文化相似度最高的10个词：')\n",
    "    print(model.wv.most_similar('文化',topn= 10))\n",
    "train_word2vec()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def keyword(data):\n",
    "    tfidf = analyse.extract_tags\n",
    "    keywords = tfidf(data)\n",
    "    return keywords\n",
    "def get_keywords(docpath,savepath):\n",
    "    with open(docpath,'r',encoding = 'utf-8') as docf,open(savepath,'w') as outf:\n",
    "        for data in docf:\n",
    "            data = data[:len(data)-1]\n",
    "            keywords = keyword(data)\n",
    "            for word in keywords:\n",
    "                outf.write(word + ' ')\n",
    "            outf.write('\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_pos(string,char):\n",
    "    space_pos = []\n",
    "    try:\n",
    "        space_pos = list(((pos) for pos, val in enumerate(string)if(val == char)))\n",
    "    except:\n",
    "        pass \n",
    "    return space_pos\n",
    "def get_vector(file_name,model):\n",
    "    with open(file_name,'r') as f:\n",
    "        wordvec_size = 200\n",
    "        word_vector = numpy.zeros(wordvec_size)\n",
    "        for data in f:\n",
    "            space_pos = get_pos(data,' ')\n",
    "            first_word = data[0:space_pos[0]]\n",
    "            if model.wv.__contains__(first_word):\n",
    "                word_vector = word_vector + model.wv[first_word]\n",
    "                for i in range(len(space_pos) - 1):\n",
    "                    word = data[space_pos[i]:space_pos[i+1]]\n",
    "                    if model.wv.__contains__(word):\n",
    "                        word_vector = word_vector + model.wv[word]\n",
    "        return word_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def similarity(vector1,vector2):\n",
    "    vector1_abs = np.sqrt(vector1.dot(vector1))\n",
    "    vector2_abs = np.sqrt(vector2.dot(vector2))\n",
    "    if vector2_abs != 0 and vector1_abs !=0:\n",
    "        similarity = (vector1.dot(vector2))/(vector1_abs * vector2_abs)\n",
    "    else:\n",
    "        similarity = 0\n",
    "    return similarity\n",
    "def main():\n",
    "    model = gensim.models.Word2Vec.load('data/model_word2vec')\n",
    "    homework1 = 'data/zuoye1.txt'\n",
    "    homework2 = 'data/zuoye2.txt'\n",
    "    homework1_keywords = 'data/homework1.txt'\n",
    "    homework2_keywords = 'data/homework2.txt'\n",
    "    get_keywords(homework1,homework1_keywords)\n",
    "    get_keywords(homework2,homework2_keywords)\n",
    "    homework1_vector = get_vector(homework1_keywords,model)\n",
    "    print('文本homework1的部分变量：\\n',homework1_vector[:20])\n",
    "    homework2_vector = get_vector(homework2_keywords,model)\n",
    "    print('文本homework2的部分变量：\\n',homework2_vector[:20])\n",
    "    print('作业homework1和作业homework2的相似度：',similarity(homework1_vector,homework2_vector))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "文本homework1的部分变量：\n",
      " [ 0.04985147 -1.29875371 -2.2247474  -0.16477123 -1.55939743 -0.27853847\n",
      "  1.36252174  1.17673928  0.23778864 -1.87052401 -0.64884349  1.03937241\n",
      "  2.20535728  0.71516289 -1.44648704  0.58403389 -1.23714787 -1.34611246\n",
      "  0.07656159 -0.78453927]\n",
      "文本homework2的部分变量：\n",
      " [-1.15051207 -0.52027166 -1.28850393 -1.43659049  0.73930676  0.02266568\n",
      "  0.51730916  1.2839089   0.53091517 -1.04100177  0.43153614  0.30323815\n",
      "  1.31721747  2.57960492 -0.3109758   0.0258773  -1.11055017  0.39170793\n",
      "  0.56595811 -1.22391319]\n",
      "作业homework1和作业homework2的相似度： 0.4972422770310457\n"
     ]
    }
   ],
   "source": [
    "if __name__ == \"__main__\":\n",
    "    main()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
